1. Field of Invention
The present invention relates generally to the fields of computer software in a client-server heterogeneous distributed network.
2. Description of Related Art
A software product typically has various optional installable features. The software sometimes has system management commands or task commands that influence its runtime behavior or configuration properties. For instance, a task command “createApplicationServer” creates a new application server in the system. Another example is that a task command “startServer” starts a server in the system. More than often the behavior of a system management command or task command provided a software product might need to be tuned based on which features users decide to install. For example, assuming a messaging software component is an optional installation feature of an application server product, when users create an application server they can configure a message engine on the created server only if the messaging component is already installed. Another example is that one software product needs to extend a system management command of another related software product. Using the same example as in the previous scenario, when users create an application server, users can configure a portal container on the created server only if the portal product is already installed somewhere on the system. This scenario is similar to the previous one except it crosses the product boundary and either resides on the local host or goes somewhere else in the network.
A common solution to address the first scenario is that during installation of the software, the software's command implementation queries all the installed features present, and disables some of the interfaces and/or logic on the software to be installed that are not available on the system or network. This solution however is not flexible and extensible. The command implementation needs to know all installation features and their relevance to the command. Whenever a new installable feature is introduced, the implementation of all the relevant commands need to be modified to accommodate the new installable feature.
Furthermore, concerning the second example above involving a network, when the enhancement of a command crosses the product boundary, due to the existence of a network, the above solution is no longer valid as it is very difficult for one software product to know whether all the other software products and their installation features are on the same system or network. Typically, therefore, the software product has to be programmed to provide a separate command for such heterogeneous distributed network instances. This approach is not user friendly, as users need to learn additional command syntax for these distributed products. In addition, this approach is not flexible as the implementation of this new command has a direct dependency on a command of another software product.
Factoring all of the above, it can be seen that what is needed is a superior method and apparatus for a system management tool, that is adapted to provide a command interface and behavior which is based on the existence of installed features and products, in particular in a heterogeneous distributed system, without the necessity of programmers developing and registering new commands every time a new software product is distributed in a network.